#ifndef WIDGET_H_
#define WIDGET_H_

#include <string>
#include <vector>

class DialogDirector;

class Widget
{
public:
	Widget(DialogDirector*);

public:
	virtual void changed();

protected:
	DialogDirector* m_pDir;
};

class EntryWidget : public Widget
{
public:
	EntryWidget(DialogDirector* pDir) :
		Widget(pDir) {}

public:
	void setText(const char*);
	const char* getText();

private:
	std::string m_sText;
};

class ListWidget : public Widget
{
public:
	ListWidget(DialogDirector* pDir);

public:
	void setSelectIndex(int);
	const char* getSelectText();

private:
	int m_index;
	std::vector<std::string> m_vect;
};

class ButtonWidget : public Widget
{
public:
	ButtonWidget(DialogDirector* pDir) :
		Widget(pDir) {}

public:
	void click();
	bool getEnable();
	void setEnable(bool);

private:
	bool m_bEnable;
};

#endif // WIDGET_H_
